package com.company.aicrawlers.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.company.aicrawlers.entity.CollectTaskQuestionPlatform;

import java.util.List;
import java.util.Map;

/**
 * 问句-平台执行状态 Service接口
 * 断点续传核心Service
 * 
 * @author AI Crawlers
 * @since 2025-10-10
 */
public interface CollectTaskQuestionPlatformService extends IService<CollectTaskQuestionPlatform> {

    /**
     * 批量创建问句×平台执行状态矩阵
     * 
     * @param taskId 任务ID
     * @param questionIds 问句ID列表
     * @param platforms 平台列表
     */
    void batchCreateMatrix(Long taskId, List<Long> questionIds, List<String> platforms);

    /**
     * 查询任务下某平台的未执行问句
     * 
     * @param taskId 任务ID
     * @param platformName 平台名称
     * @return 未执行的问句列表
     */
    List<Map<String, Object>> getPendingByTaskAndPlatform(Long taskId, String platformName);

    /**
     * 查询任务的所有未完成的问句×平台组合（断点续传）
     * 
     * @param taskId 任务ID
     * @return 未完成的问句×平台组合列表
     */
    List<Map<String, Object>> getPendingByTask(Long taskId);

    /**
     * 更新执行状态
     * 
     * @param taskId 任务ID
     * @param questionId 问句ID
     * @param platformName 平台名称
     * @param executeStatus 执行状态
     * @param errorMessage 错误信息（可选）
     */
    void updateExecuteStatus(Long taskId, Long questionId, String platformName, 
                             String executeStatus, String errorMessage);
}

